程序汪10万接的无线共享充电宝项目,开发周期3个月
本文章来自程序汪背后的私活小团队,开发智慧充电的小程序,希望把这些真实案例分享出来,大家能学到点东西,比如硬件怎么通过手机蓝牙操控,商业项目怎么推广,软件怎么和硬件配合,充电宝技术方案是什么样的等等。
B站【我是程序汪】
这次又是一个名字听上去很高大上的项目,无线充电智慧云管理系统
因为是商业项目所以部分截图打码,谢谢理解
开发人员(1人)
前端 技术栈 layui 主要任务 小程序及PC端页面
后端 技术栈 springboot
开发周期90天
开发人数 2人
整体费用是10万(不含硬件部分)
走的公司合同
阿里云服务器1台
技术选型
核心框架:Spring Boot
数据库连接池:Druid
缓存:redis
数据库:mysql
小程序蓝牙接口
项目背景
无线充电技术现在越来越成熟,用户可以很方便的充电,比如在餐厅吃饭时只有扫下二维码就可以无线充电非常的方便,当然比较老式的手机只不支持无线充,但用不了几年大家都会抛弃老手机换新手机,这样无线充电的市场会越来越大。
核心的一个流程
具体演示下充电的场景
无线充电桌贴(上面有二维码的)
桌面上的情况,在充电设备的正上方会放一个圆形图标,放手机放到正确位置
小程序(蓝牙API)
程序汪把核心页面截图出来,开发的第一版本的小程序功能比较少
https://developers.weixin.qq.com/miniprogram/dev/api/device/bluetooth-ble/wx.getBLEDeviceCharacteristics.html
下面是小程序蓝牙API ,这块是用来跟充电硬件设备已经连接的
微信小程序示例代码
在开发者工具中预览效果
// 向蓝牙设备发送一个0x00的16进制数据
let buffer = new ArrayBuffer(1)
let dataView = new DataView(buffer)
dataView.setUint8(0, 0)
wx.writeBLECharacteristicValue({
// 这里的 deviceId 需要在 getBluetoothDevices 或 onBluetoothDeviceFound 接口中获取
deviceId,
// 这里的 serviceId 需要在 getBLEDeviceServices 接口中获取
serviceId,
// 这里的 characteristicId 需要在 getBLEDeviceCharacteristics 接口中获取
characteristicId,
// 这里的value是ArrayBuffer类型
value: buffer,
success (res) {
console.log('writeBLECharacteristicValue success', res.errMsg)
}
})
微信方法示例代码
在开发者工具中预览效果
// 必须在这里的回调才能获取
wx.onBLECharacteristicValueChange(function(characteristic) {
console.log('characteristic value comed:', characteristic)
})
wx.readBLECharacteristicValue({
// 这里的 deviceId 需要已经通过 createBLEConnection 与对应设备建立链接
deviceId,
// 这里的 serviceId 需要在 getBLEDeviceServices 接口中获取
serviceId,
// 这里的 characteristicId 需要在 getBLEDeviceCharacteristics 接口中获取
characteristicId,
success (res) {
console.log('readBLECharacteristicValue:', res.errCode)
}
})
充电硬件方的蓝牙接口 (这里省略字段名字,但基本功能描述如下)
备注 |
设置设备打开关闭 设置设备充电时长 设置设备延时关闭时长 |
读取当前设备充电状态 |
1 设置打开 0 设置关闭 |
设置充电时间,1个单位时长10分钟,默认值30分钟 |
设置延时关闭时间,1个单位时长5分钟,默认10分钟 |
PC端
目前主要功能
PC端基本功能如下列菜单,其实比较复杂点的逻辑就是利润分成那块,其他基本也就是CRUD
硬件部分
需要商务沟通的各种接口开发联调,硬件也分自助研发和厂家定制
微信小程序蓝牙接口
手机和硬件的接口对接,主要工作量就是微信小程序蓝牙,以前微信公众号的接口文档不是特别完善,联调那叫一个累啊,特别是安卓和苹果部分参数是不一样的,文档又没清楚说明,反复研究了好一会才测试通过。
蓝牙兼容没问题的情况下,支持出现支付页面
调用微信支付
支付成功后开始计时,(有点像共享单车)
这是当时联调的场景,如下图,这个电路板小圈圈就是硬件商提供的
技术注意(硬件的锅)
本项目的问题基本都是硬件,软件部分就蓝牙控制那块有点麻烦,其实文档完善的情况下也没什么难度
1 蓝牙连不上问题 ,硬件问题 (免费试用15秒)
2 蓝牙连上但不充电 ,硬件问题(情况很少,可以走报修退款)
点下方原文链接观看B站视频版本